<?
/*
 *  GGB - Gelin's Guest Book.
 *  Copyright (C) 2006  Denis Nelubin aka Gelin
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 *
 *  http://gelin.ru
 *  mailto:den@gelin.ru
 *
 *  Description:    Action, actually adds post.
 *
 *  History:
 *  2006-07-07  Gelin   Initially created.
 *  2007-01-14  Gelin   Added ability to include add form to view template
 *  2007-07-04  Gelin   Task #1  Save user's name which posts message to Cookie.
 *                      - added setting of cookie
 *  2009-10-16  Gelin   Added ability to disable the guestbook
 */

require_once($config['require']['recaptcha']);

$message = $format->getFromRequest();

if ($config['behaviour']['disable']) {
    $log->error($lang['error.access.disabled']);
} else {
    if (trim($message['name']) == '') {
        $log->error($lang['error.name.required']);
    } else {
        setcookie($config['cookie']['name'], $message['name'],
                time() + 3600 * 24 *30);    //one month expiration
    }
    if (trim($message['message']) == '') {
        $log->error($lang['error.message.required']);
    }

    if ($config['recaptcha']['enable']) {
        $response = recaptcha_check_answer($config['recaptcha']['privatekey'],
                $_SERVER["REMOTE_ADDR"],
                $_POST["recaptcha_challenge_field"],
                $_POST["recaptcha_response_field"]);
        if (!$response->is_valid) {
            $recaptcha_error = $response->error;
        }
    }
}

if (!$log->isErrorsEmpty() || $recaptcha_error) { //have error

    if (!$config['behaviour']['add_form_on_view_page']) {
        $form = $format->prepareForm();
        include($config['template']['add']);
    } else {
        require('view.php');    //make view action
    }

} else {    //no errors

    $storage->postMessage($message);
    header("Location: .");

}

?>